﻿//=============================================================================
// Project  : NIPO Component Framework
// File    : PluginConfiguration.cs
// Author  : Bernhard Dieber (Bernhard.Dieber@uni-klu.ac.at)
// Copyright 2010 by Bernhard Dieber
// This code is published under the Microsoft Public License (Ms-PL).  A copy
// of the license should be distributed with the code.  It can also be found
// at the project website: http://NIPO.CodePlex.com.   This notice, the
// author's name, and all copyright notices must remain intact in all
// applications, documentation, and source files.
//=============================================================================

using System;
using System.IO;

namespace NIPO.Util
{
    
    /// <summary>
    /// The base class for a plugin configuration <br />
    /// Subclasses of this can be used by a plugin to store necessary configuration values <br />
    /// The PluginConfiguration object of every plugin is presented to the user in order to configure it.
    /// </summary>
    /// <remarks>All subclasses of PluginConfiguration must be marked as Serializable</remarks>
    [Serializable]
    public class PluginConfiguration
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="PluginConfiguration"/> class.
        /// </summary>
        public PluginConfiguration()
        {
            AsynchronousInvoke = true;
        }
        
        /// <summary>
        /// Gets or sets a value indicating whether or not Events of this plugin should be invoked asynchronously.
        /// </summary>
        /// <value><c>true</c> if BeginInvoke() should be used; otherwise, <c>false</c>.</value>
        public bool AsynchronousInvoke { get; set; }
    }
}